using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using DigiOffice.Integration.TBIXchangeAzure.Messages;
using IDB.API.DTO.Document;
namespace DigiOffice.Integration.TBIXchangeAzure.Messages
{
public partial class Address
{
public virtual string AddressLine1 { get; set; }
public virtual string AddressLine2 { get; set; }
public virtual string HouseNumber { get; set; }
public virtual string HouseNumberSuffix { get; set; }
public virtual string PostalCode { get; set; }
public virtual string City { get; set; }
public virtual Reference Country { get; set; }
}
public partial class ConstructionBlock
{
public ConstructionBlock()
{
CustomFields = new CustomField[]{};
}
public virtual string GlobalID { get; set; }
public virtual Reference ProjectReference { get; set; }
public virtual string Code { get; set; }
public virtual string Description { get; set; }
public virtual CustomField[] CustomFields { get; set; }
public virtual DateTime? CreationDate { get; set; }
public virtual string CreatedBy { get; set; }
public virtual DateTime? ModifiedDate { get; set; }
public virtual string ModifiedBy { get; set; }
}
public partial class ConstructionNumber
{
public ConstructionNumber()
{
CustomFields = new CustomField[]{};
}
public virtual string GlobalID { get; set; }
public virtual Reference ProjectReference { get; set; }
public virtual Reference HousingTypeReference { get; set; }
public virtual Reference ConstructionBlockReference { get; set; }
public virtual string Code { get; set; }
public virtual string Description { get; set; }
public virtual Address Address { get; set; }
public virtual bool RentalHouse { get; set; }
public virtual string GuaranteeCertificateNumber { get; set; }
public virtual bool Inactive { get; set; }
public virtual CustomField[] CustomFields { get; set; }
public virtual DateTime? CreationDate { get; set; }
public virtual string CreatedBy { get; set; }
public virtual DateTime? ModifiedDate { get; set; }
public virtual string ModifiedBy { get; set; }
public virtual DateTime? ViewingDate { get; set; }
public virtual bool ViewingDateSpecified { get; set; }
public virtual DateTime? DeliveryDate { get; set; }
public virtual bool DeliveryDateSpecified { get; set; }
}
public partial class CustomField
{
public virtual string Name { get; set; }
public virtual string Value { get; set; }
}
public partial class Header
{
public virtual string MessageID { get; set; }
public virtual DateTime Timestamp { get; set; }
public virtual Party Sender { get; set; }
public virtual Party Recipient { get; set; }
public virtual Object RequestMessageID { get; set; }
public partial class Party
{
public virtual string Title { get; set; }
public virtual string Code { get; set; }
public virtual string Version { get; set; }
public virtual Environment Environment { get; set; }
}
public partial class Environment
{
public virtual string Title { get; set; }
public virtual string Code { get; set; }
}
}
public partial class HousingType
{
public HousingType()
{
CustomFields = new CustomField[]{};
}
public virtual string GlobalID { get; set; }
public virtual Reference ProjectReference { get; set; }
public virtual string Code { get; set; }
public virtual string Description { get; set; }
public virtual CustomField[] CustomFields { get; set; }
public virtual DateTime? CreationDate { get; set; }
public virtual string CreatedBy { get; set; }
public virtual DateTime? ModifiedDate { get; set; }
public virtual string ModifiedBy { get; set; }
}
public partial class MailingAddress
{
public virtual string POBox { get; set; }
public virtual string PostalCode { get; set; }
public virtual string City { get; set; }
public virtual Reference Country { get; set; }
}
public partial class ProcessProjectRequestMessage
{
public virtual Guid InstanceId { get; set; }
public virtual ProjectRequestMessage ProjectRequest { get; set; }
}
public partial class Project
{
public Project()
{
CustomFields = new CustomField[]{};
}
public virtual string GlobalID { get; set; }
public virtual DateTime? CreationDate { get; set; }
public virtual string CreatedBy { get; set; }
public virtual DateTime? ModifiedDate { get; set; }
public virtual string ModifiedBy { get; set; }
public virtual string Code { get; set; }
public virtual string Name { get; set; }
public virtual string Description1 { get; set; }
public virtual string Description2 { get; set; }
public virtual Address Address { get; set; }
public virtual MailingAddress MailingAddress { get; set; }
public virtual Reference ProjectCategoryReference { get; set; }
public virtual Reference ProjectTypeReference { get; set; }
public virtual Reference ProjectStatusReference { get; set; }
public virtual DateTime? StartDate { get; set; }
public virtual DateTime? EndDate { get; set; }
public virtual DateTime? CompletionDate { get; set; }
public virtual bool Inactive { get; set; }
public virtual string Website { get; set; }
public virtual bool IsTemplateProject { get; set; }
public virtual CustomField[] CustomFields { get; set; }
}
public partial class ProjectRequestMessage
{
public virtual Header Header { get; set; }
public virtual Reference ProjectReference { get; set; }
public virtual bool IncludeHousingTypes { get; set; }
public virtual bool IncludeConstructionBlocks { get; set; }
public virtual bool IncludeConstructionNumbers { get; set; }
public virtual bool IncludeDocuments { get; set; }
public virtual bool IncludePurchaseContracts { get; set; }
}
public partial class ProjectResponseMessage
{
public ProjectResponseMessage()
{
HousingTypes = new HousingType[]{};
ConstructionBlocks = new ConstructionBlock[]{};
ConstructionNumbers = new ConstructionNumber[]{};
Documents = new Document[]{};
PurchaseContracts = new PurchaseContract[]{};
}
public virtual Header Header { get; set; }
public virtual Reference ProjectReference { get; set; }
public virtual Project Project { get; set; }
public virtual HousingType[] HousingTypes { get; set; }
public virtual ConstructionBlock[] ConstructionBlocks { get; set; }
public virtual ConstructionNumber[] ConstructionNumbers { get; set; }
public virtual Document[] Documents { get; set; }
public virtual PurchaseContract[] PurchaseContracts { get; set; }
}
public partial class PurchaseContract
{
public PurchaseContract()
{
CustomFields = new CustomField[]{};
}
public virtual string GlobalID { get; set; }
public virtual string Code { get; set; }
public virtual string Description { get; set; }
public virtual Reference ProjectReference { get; set; }
public virtual string ProductCode { get; set; }
public virtual Relation Relation { get; set; }
public virtual bool Inactive { get; set; }
public virtual CustomField[] CustomFields { get; set; }
public virtual DateTime? CreationDate { get; set; }
public virtual string CreatedBy { get; set; }
public virtual DateTime? ModifiedDate { get; set; }
public virtual string ModifiedBy { get; set; }
}
public partial class Reference
{
public virtual string GlobalID { get; set; }
public virtual string Title { get; set; }
}
public partial class Relation
{
public Relation()
{
CustomFields = new CustomField[]{};
}
public virtual string GlobalID { get; set; }
public virtual string NameLine1 { get; set; }
public virtual string NameLine2 { get; set; }
public virtual Address Address { get; set; }
public virtual MailingAddress MailingAddress { get; set; }
public virtual string Telephone { get; set; }
public virtual string Mobile { get; set; }
public virtual string Email { get; set; }
public virtual string IBAN { get; set; }
public virtual string BankAccountNumber { get; set; }
public virtual string Website { get; set; }
public virtual bool Inactive { get; set; }
public virtual CustomField[] CustomFields { get; set; }
public virtual DateTime? CreationDate { get; set; }
public virtual string CreatedBy { get; set; }
public virtual DateTime? ModifiedDate { get; set; }
public virtual string ModifiedBy { get; set; }
}
}
namespace IDB.API.DTO.Document
{
public partial class Document
: ICustomProperties
{
public Document()
{
CustomProperties = new Dictionary<string, Object>{};
}
public virtual Guid ID { get; set; }
public virtual Guid RootDocumentID { get; set; }
public virtual Guid RegistrationprofileID { get; set; }
public virtual string Title { get; set; }
public virtual string FullTitle { get; set; }
public virtual string Number { get; set; }
public virtual string Version { get; set; }
public virtual string ExternalNumber { get; set; }
public virtual string ExternalVersion { get; set; }
public virtual string InternalNumber { get; set; }
public virtual string InternalInvoiceNumber { get; set; }
public virtual int PersonID { get; set; }
public virtual int RelationID { get; set; }
public virtual string RelationTitle { get; set; }
public virtual int ProjectID { get; set; }
public virtual string ProjectTitle { get; set; }
public virtual string Extension { get; set; }
public virtual DateTime? Date { get; set; }
public virtual int CommentsCount { get; set; }
public virtual bool HasComments { get; set; }
public virtual bool HasPreview { get; set; }
public virtual string ExtraField { get; set; }
public virtual bool IsFavorite { get; set; }
public virtual string DocumentcategoryText { get; set; }
public virtual long? FileSize { get; set; }
public virtual DateTime? FileDate { get; set; }
public virtual string Hash { get; set; }
public virtual string HashType { get; set; }
public virtual string FileUrl { get; set; }
public virtual string StandardDocumentUrl { get; set; }
public virtual bool IsCorporateIdentity { get; set; }
public virtual string UserTitle { get; set; }
public virtual bool IsFrozen { get; set; }
public virtual int InternalCompanyID { get; set; }
public virtual string DirectUrl { get; set; }
public virtual bool AllowDigitalSigningOnlyOnPrimaryVersions { get; set; }
public virtual bool IsPrimaryVersion { get; set; }
public virtual string FileExtension { get; set; }
public virtual Dictionary<string, Object> CustomProperties { get; set; }
}
}
C# ProcessProjectRequestMessage DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /xml/reply/ProcessProjectRequestMessage HTTP/1.1
Host: kpm_digiofficeapigateway.tbi.nl
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<ProcessProjectRequestMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DigiOffice.Integration.TBIXchangeAzure.Messages">
<InstanceId>00000000-0000-0000-0000-000000000000</InstanceId>
<ProjectRequest>
<Header>
<MessageID>String</MessageID>
<Recipient>
<Code>String</Code>
<Environment>
<Code>String</Code>
<Title>String</Title>
</Environment>
<Title>String</Title>
<Version>String</Version>
</Recipient>
<RequestMessageID />
<Sender>
<Code>String</Code>
<Environment>
<Code>String</Code>
<Title>String</Title>
</Environment>
<Title>String</Title>
<Version>String</Version>
</Sender>
<Timestamp>0001-01-01T00:00:00</Timestamp>
</Header>
<IncludeConstructionBlocks>false</IncludeConstructionBlocks>
<IncludeConstructionNumbers>false</IncludeConstructionNumbers>
<IncludeDocuments>false</IncludeDocuments>
<IncludeHousingTypes>false</IncludeHousingTypes>
<IncludePurchaseContracts>false</IncludePurchaseContracts>
<ProjectReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectReference>
</ProjectRequest>
</ProcessProjectRequestMessage>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<ProjectResponseMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DigiOffice.Integration.TBIXchangeAzure.Messages">
<ConstructionBlocks>
<ConstructionBlock>
<Code>String</Code>
<CreatedBy>String</CreatedBy>
<CreationDate>0001-01-01T00:00:00</CreationDate>
<CustomFields>
<CustomField>
<Name>String</Name>
<Value>String</Value>
</CustomField>
</CustomFields>
<Description>String</Description>
<GlobalID>String</GlobalID>
<ModifiedBy>String</ModifiedBy>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<ProjectReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectReference>
</ConstructionBlock>
</ConstructionBlocks>
<ConstructionNumbers>
<ConstructionNumber>
<Address>
<AddressLine1>String</AddressLine1>
<AddressLine2>String</AddressLine2>
<City>String</City>
<Country>
<GlobalID>String</GlobalID>
<Title>String</Title>
</Country>
<HouseNumber>String</HouseNumber>
<HouseNumberSuffix>String</HouseNumberSuffix>
<PostalCode>String</PostalCode>
</Address>
<Code>String</Code>
<ConstructionBlockReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ConstructionBlockReference>
<CreatedBy>String</CreatedBy>
<CreationDate>0001-01-01T00:00:00</CreationDate>
<CustomFields>
<CustomField>
<Name>String</Name>
<Value>String</Value>
</CustomField>
</CustomFields>
<DeliveryDate>0001-01-01T00:00:00</DeliveryDate>
<DeliveryDateSpecified>false</DeliveryDateSpecified>
<Description>String</Description>
<GlobalID>String</GlobalID>
<GuaranteeCertificateNumber>String</GuaranteeCertificateNumber>
<HousingTypeReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</HousingTypeReference>
<Inactive>false</Inactive>
<ModifiedBy>String</ModifiedBy>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<ProjectReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectReference>
<RentalHouse>false</RentalHouse>
<ViewingDate>0001-01-01T00:00:00</ViewingDate>
<ViewingDateSpecified>false</ViewingDateSpecified>
</ConstructionNumber>
</ConstructionNumbers>
<Documents>
<Document>
<Code>String</Code>
<ConstructionBlockReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ConstructionBlockReference>
<ConstructionNumberReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ConstructionNumberReference>
<CreatedBy>String</CreatedBy>
<CreationDate>0001-01-01T00:00:00</CreationDate>
<CustomFields>
<CustomField>
<Name>String</Name>
<Value>String</Value>
</CustomField>
</CustomFields>
<DeletedDate>0001-01-01T00:00:00</DeletedDate>
<DeletedDateSpecified>false</DeletedDateSpecified>
<DocumentTypeReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</DocumentTypeReference>
<File>
<Content>String</Content>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<Name>String</Name>
<Size>0</Size>
<Type>String</Type>
</File>
<Floor>0</Floor>
<FloorSpecified>false</FloorSpecified>
<GlobalID>String</GlobalID>
<HousingTypeReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</HousingTypeReference>
<ModifiedBy>String</ModifiedBy>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<NewestVersion>false</NewestVersion>
<ProjectReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectReference>
<RelationReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</RelationReference>
<RootDocumentID>String</RootDocumentID>
<Subject>String</Subject>
<VersionNumber>String</VersionNumber>
</Document>
</Documents>
<Header>
<MessageID>String</MessageID>
<Recipient>
<Code>String</Code>
<Environment>
<Code>String</Code>
<Title>String</Title>
</Environment>
<Title>String</Title>
<Version>String</Version>
</Recipient>
<RequestMessageID />
<Sender>
<Code>String</Code>
<Environment>
<Code>String</Code>
<Title>String</Title>
</Environment>
<Title>String</Title>
<Version>String</Version>
</Sender>
<Timestamp>0001-01-01T00:00:00</Timestamp>
</Header>
<HousingTypes>
<HousingType>
<Code>String</Code>
<CreatedBy>String</CreatedBy>
<CreationDate>0001-01-01T00:00:00</CreationDate>
<CustomFields>
<CustomField>
<Name>String</Name>
<Value>String</Value>
</CustomField>
</CustomFields>
<Description>String</Description>
<GlobalID>String</GlobalID>
<ModifiedBy>String</ModifiedBy>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<ProjectReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectReference>
</HousingType>
</HousingTypes>
<Project>
<Address>
<AddressLine1>String</AddressLine1>
<AddressLine2>String</AddressLine2>
<City>String</City>
<Country>
<GlobalID>String</GlobalID>
<Title>String</Title>
</Country>
<HouseNumber>String</HouseNumber>
<HouseNumberSuffix>String</HouseNumberSuffix>
<PostalCode>String</PostalCode>
</Address>
<Code>String</Code>
<CompletionDate>0001-01-01T00:00:00</CompletionDate>
<CreatedBy>String</CreatedBy>
<CreationDate>0001-01-01T00:00:00</CreationDate>
<CustomFields>
<CustomField>
<Name>String</Name>
<Value>String</Value>
</CustomField>
</CustomFields>
<Description1>String</Description1>
<Description2>String</Description2>
<EndDate>0001-01-01T00:00:00</EndDate>
<GlobalID>String</GlobalID>
<Inactive>false</Inactive>
<IsTemplateProject>false</IsTemplateProject>
<MailingAddress>
<City>String</City>
<Country>
<GlobalID>String</GlobalID>
<Title>String</Title>
</Country>
<POBox>String</POBox>
<PostalCode>String</PostalCode>
</MailingAddress>
<ModifiedBy>String</ModifiedBy>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<Name>String</Name>
<ProjectCategoryReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectCategoryReference>
<ProjectStatusReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectStatusReference>
<ProjectTypeReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectTypeReference>
<StartDate>0001-01-01T00:00:00</StartDate>
<Website>String</Website>
</Project>
<ProjectReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectReference>
<PurchaseContracts>
<PurchaseContract>
<Code>String</Code>
<CreatedBy>String</CreatedBy>
<CreationDate>0001-01-01T00:00:00</CreationDate>
<CustomFields>
<CustomField>
<Name>String</Name>
<Value>String</Value>
</CustomField>
</CustomFields>
<Description>String</Description>
<GlobalID>String</GlobalID>
<Inactive>false</Inactive>
<ModifiedBy>String</ModifiedBy>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<ProductCode>String</ProductCode>
<ProjectReference>
<GlobalID>String</GlobalID>
<Title>String</Title>
</ProjectReference>
<Relation>
<Address>
<AddressLine1>String</AddressLine1>
<AddressLine2>String</AddressLine2>
<City>String</City>
<Country>
<GlobalID>String</GlobalID>
<Title>String</Title>
</Country>
<HouseNumber>String</HouseNumber>
<HouseNumberSuffix>String</HouseNumberSuffix>
<PostalCode>String</PostalCode>
</Address>
<BankAccountNumber>String</BankAccountNumber>
<CreatedBy>String</CreatedBy>
<CreationDate>0001-01-01T00:00:00</CreationDate>
<CustomFields>
<CustomField>
<Name>String</Name>
<Value>String</Value>
</CustomField>
</CustomFields>
<Email>String</Email>
<GlobalID>String</GlobalID>
<IBAN>String</IBAN>
<Inactive>false</Inactive>
<MailingAddress>
<City>String</City>
<Country>
<GlobalID>String</GlobalID>
<Title>String</Title>
</Country>
<POBox>String</POBox>
<PostalCode>String</PostalCode>
</MailingAddress>
<Mobile>String</Mobile>
<ModifiedBy>String</ModifiedBy>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<NameLine1>String</NameLine1>
<NameLine2>String</NameLine2>
<Telephone>String</Telephone>
<Website>String</Website>
</Relation>
</PurchaseContract>
</PurchaseContracts>
</ProjectResponseMessage>